
#ifndef ERROR_REPORT_H

#define ERROR_REPORT_H

#include "lexic_units.h"



class ErrorEntry
{
public:
	ErrorEntry(int id, char * str);
	~ErrorEntry();

// private: // TODO
	int id;
	char * str;
};


class WarningEntry
{
public:
	WarningEntry(int id, char * str);
	~WarningEntry();

// private: // TODO
	int id;
	char * str;
};



class ErrorReport
{
public:
	ErrorReport();
	~ErrorReport();

	void ReportError(LexicUnit * lu, unsigned long errorID);
	void ReportWarning(LexicUnit * lu, unsigned long warningID);


	void InitializeErrorsTable(); // todo - pvt?
	void InitializeWarningsTable(); // todo - pvt?

private:

	
	GenericTable<ErrorEntry> * predefinedErrors;
	GenericTable<WarningEntry> * predefinedWarnings;
};

#endif
